DNS Internals
8. What is the Domain Name System (DNS)?
DNS (Domain Name System) হলো ইন্টারনেটের একটি ডিস্ট্রিবিউটেড ডেটাবেস সিস্টেম, যা মানুষের পড়ার উপযোগী ডোমেইন নেমকে (যেমন: google.com) মেশিনের পড়ার উপযোগী IP অ্যাড্রেসে (যেমন: 142.250.190.46) রূপান্তর করে। সহজ কথায়, এটি ইন্টারনেটের ডিরেক্টরি হিসেবে কাজ করে।
🤔 Why was DNS created instead of using IP addresses directly?
মানুষের মস্তিষ্কের পক্ষে হাজার হাজার ওয়েবসাইটের জটিল সংখ্যার IP অ্যাড্রেস মুখস্থ রাখা প্রায় অসম্ভব। কিন্তু কোনো ওয়েবসাইটের নাম (যেমন facebook.com) মনে রাখা খুব সহজ। মানুষের এই সুবিধার জন্যই IP অ্যাড্রেসের বিকল্প হিসেবে ডোমেইন নেম এবং এদের রেজল্যুশনের জন্য DNS সিস্টেম তৈরি করা হয়েছে।
⚖️ How does DNS help with load balancing and fault tolerance?
DNS শুধুমাত্র নামকে আইপিতেই রূপান্তর করে না, এটি ট্রাফিক ম্যানেজমেন্টেও সাহায্য করে:
- Load Balancing (Round-Robin DNS): একটি ডোমেইনের বিপরীতে একাধিক IP অ্যাড্রেস অ্যাসাইন করা যায়। যখন ইউজাররা ওই ডোমেইনে রিকোয়েস্ট পাঠায়, DNS তখন পর্যায়ক্রমে (round-robin) ভিন্ন ভিন্ন IP রিটার্ন করে, ফলে ট্রাফিক একাধিক সার্ভারে ভাগ হয়ে যায়।
- Fault Tolerance/Failover: যদি কোনো সার্ভার ডাউন বা অফলাইন হয়ে যায়, ব্যাকএন্ড ডেভেলপাররা DNS রেকর্ড আপডেট করে ট্রাফিক অন্য একটি সুস্থ (healthy) সার্ভারের IP-তে রিডাইরেক্ট করে দিতে পারেন।
📂 What is the difference between a DNS zone and a DNS record?
| বৈশিষ্ট্য | 📝 DNS Record | 🗂️ DNS Zone |
|---|---|---|
| সংজ্ঞা | এটি হলো DNS ডেটাবেসের একটি সিঙ্গেল এন্ট্রি বা তথ্য (যেমন A রেকর্ড, MX রেকর্ড)। | এটি হলো একটি ডোমেইন স্পেসের অংশ, যার পরিচালনার দায়িত্ব নির্দিষ্ট কোনো অ্যাডমিনিস্ট্র েটরের কাছে থাকে। |
| কাজ | এটি নির্দিষ্ট একটি ডোমেইনের কোনো একটি প্রপার্টি ডিফাইন করে। | একটি DNS Zone-এর ভেতরে ওই ডোমেইন এবং তার সাবডোমেইনের সমস্ত DNS Record গুলোকে একটি ফাইলে (Zone File) সংগঠিত রাখা হয়। |
📖 Why is DNS often called the "Phonebook of the Internet"?
টেলিফোন ডিরেক্টরিতে যেমন মানুষের নামের পাশে তাদের ফোন নম্বর লেখা থাকে, ঠিক তেমনি DNS সার্ভারে ওয়েবসাইটের ডোমেইন নেমের পাশে তাদের IP অ্যাড্রেস লেখা থাকে। আপনি নাম খুঁজলে DNS আপনাকে রিয়েল আইপি অ্যাড্রেস বা নম্বরটা বের করে দেয়। এ কারণেই একে ইন্টারনেটের ফোনবুক বলা হয়।
🔄 What is the difference between forward and reverse DNS lookup?
- ▶️ Forward DNS Lookup: ডোমেইন নেম (যেমন
google.com) থেকে IP অ্যাড্রেস বের করার প্রক্রিয়াকে ফরোয়ার্ড লুকআপ বলে। এটিই সবচেয়ে বেশি ব্যবহৃত হয়। - ◀️ Reverse DNS Lookup (rDNS): IP অ্যাড্রেস (যেমন
142.250.190.46) থেকে সেই আইপিটি কোন ডোমেইনের সাথে যুক্ত, তা বের করার প্রক্রিয়াকে রিভার্স লুকআপ বলে। এটি স্প্যাম চেকিং এবং ট্রাবলশুটিং-এর কাজে ব্যবহৃত হয়।
9. How does DNS resolve domain names to IP addresses?

DNS রেজল্যুশন ফ্লো (Browser Cache -> Resolver -> Root -> TLD -> Authoritative -> Cache)
Step-by-step DNS Resolution
-
Browser -> Local Cache
প্রথমে OS বা ব্রাউজারের ক্যাশে খোঁজে। আগে ভিজিট করা থাকলে এখানেই পাওয়া যায়, বাকি ধাপের দরকার হয় না। -
Recursive Resolver
না পেলে ISP-এর বা পাবলিক রিজলভারের (যেমন Google-এর8.8.8.8) কাছে যায়। এটি পুরো চেইনটি পরিচালনা করে। -
Root Server -> TLD ঠিকানা
রিজলভার Root Server-কে জিজ্ঞেস করে। Root Server জানে নাexample.com-এর IP, কিন্তু জানে.com-এর TLD সার্ভার কোথায়, সেটি দিয়ে দেয়। -
TLD Server -> Authoritative ঠিকানা
.comTLD সার্ভার জানেexample.comকোন Authoritative Server ব্যবহার করে, সেটির ঠিকানা দেয়। -
Authoritative Server -> চূড়ান্ত IP
এটিই আ সল উত্তর দেয়। Domain-এর DNS রেকর্ড এখানেই থাকে। -
ক্যাশ করা হয়
পুরো উত্তরটি TTL (Time to Live) সময়ের জন্য ক্যাশে সংরক্ষিত হয়, যাতে পরের বার আবার পুরো চেইন না ঘুরতে হয়।
Tip: বাস্তবে পুরো প্রক্রিয়াটি মাত্র কয়েক মিলিসেকেন্ডে শেষ হয়।
🏢 What is the difference between an authoritative DNS server and a recursive resolver?
| সার্ভার | 🛡️ Authoritative DNS Server | 🕵️♂️ Recursive Resolver |
|---|---|---|
| সংজ্ঞা | এটি হলো ডেটাবেসের সেই অরিজিনাল সার্ভার, যার কাছে নির্দিষ্ট ডোমেইনটির জন্য সর্বশেষ এবং সঠিক DNS রেকর্ডগুলো জমা থাকে। এটিই চূড়ান্ত উত্তর দেয়। | এটি হলো ইউজারের ডিভাইস (বা ISP) থেকে পাঠানো রিকোয়েস্ট গ্রহণকারী সার্ভার। |
| কাজের ধরন | এর কাছে সব রেকর্ড সেভ করা থাকে। | এর নিজের কাছে সব উত্তর থাকে না, বরং ইউজারের হয়ে এটি অন্যান্য সার্ভারকে পর্যায়ক্রমে প্রশ্ন করে আইপি অ্যাড্রেসটি খুঁজে এনে ইউজারকে দেয়। |
🕵️♂️ What is the role of a DNS resolver in the DNS resolution process?
DNS Resolver (বা Recursive Resolver) হলো ক্লায়েন্ট এবং DNS ইনফ্রাস্ট্রাকচারের মধ্যকার মধ্যস্থতাকারী (Middleman)। পুরো DNS রেজোলিউশন প্রক্রিয়ায় এটিই সবচেয়ে সক্রিয় ভূমিকা পালন করে।
যখন আপ নি ব্রাউজারে www.example.com টাইপ করেন:
১. ব্রাউজার শুধু Resolver-কে চেনে
ব্রাউজার সরাসরি কোনো Root বা TLD সার্ভারের সঙ্গে কথা বলে না — শুধু Resolver-এর কাছে প্রশ্ন পাঠায়।
২. Resolver নিজে তদন্ত শুরু করে
Resolver তখন একে একে তিনটি জায়গায় যায়:
| ধাপ | কার কাছে যায় | কী জানতে চায় |
|---|---|---|
| ১ | Root Server | .com-এর TLD সার্ভার কোথায়? |
| ২ | TLD Server | example.com-এর Authoritative সার্ভার কোথায়? |
| ৩ | Authoritative Server | www.example.com-এর IP কত? |
৩. উত্তর Cache করে রাখে
চূড়ান্ত IP পেলে সেটি নির্দিষ্ট সময় (TTL) পর্যন্ত Cache-এ সংরক্ষণ করে। পরবর্তীতে একই প্রশ্ন এলে সব ধাপ না ঘুরে সরাসরি Cache থেকেই উত্তর দেয় — এতে সময় ও ব্যান্ডউইথ দুটোই বাঁচে।
🔄 Describe the difference between an Iterative and a Recursive DNS query.
DNS রেজোলিউশনে দুটি ভিন্ন পদ্ধতিতে প্রশ্ন করা যায় — Recursive এবং Iterative। মূল পার্থক্য হলো কে কাজটা করে।
Recursive Query — "তুমিই খুঁজে দাও"
এখানে ক্লায়েন্ট Resolver-কে বলে: "আমি শুধু চূড়ান্ত উত্তর চাই, বাকিটা তুমি সামলাও।"
Resolver তখন নিজেই Root → TLD → Authoritative সার্ভারে গিয়ে পুরো কাজ শেষ করে ক্লায়েন্টকে শুধু IP ফেরত দেয়।
Code ExampleClick to view details
Client ──► Resolver ──► Root Server
◄──
──► TLD Server
◄──
──► Authoritative Server
◄──
Client ◄── Resolver (চূড়ান্ত IP)
ক্লায়েন্ট একটাই প্রশ্ন করে, একটাই উত্তর পায়। মাঝের সব ঝামেলা Resolver-এর।
Iterative Query — "যতটুকু জানো বলো"
এখানে Resolver প্রতিটি সার্ভারকে জিজ্ঞেস করে, আর সার্ভার সম্পূর্ণ উত্তর না দিয়ে বলে: "আমি জানি না, তবে এই সার্ভারকে জিজ্ঞেস করো।"
Resolver নিজেই পর্যায়ক্রমে এগিয়ে যায়।
Code ExampleClick to view details
Resolver ──► Root Server
◄── "জানি না, TLD-কে জিজ্ঞেস করো"
Resolver ──► TLD Server
◄── "জানি না, Authoritative-কে জিজ্ঞেস করো"
Resolver ──► Authoritative Server
◄── "IP হলো 93.184.216.34" ✅
প্রতিটি সার্ভার শুধু পরের ঠিকানা দেয় — চূড়ান্ত উত্তর নয়।
👣 Can you walk through a full DNS resolution step by step?
ধরা যাক একজন ইউজার example.com ভিজিট করতে চাইছে:
- 💾 Local Cache Check: প্রথমে ব্রাউজার এবং ওএস (OS) তাদের নিজেদের ক্যাশ চেক করবে। না পেলে রিকোয়েস্ট যাবে ISP-এর Recursive Resolver-এর কাছে।
- 🌐 Recursive Resolver to Root Server: রিসলভারের ক্যাশেও উত্তর না থাকলে, সে প্রথমে একটি গ্লোবাল Root DNS Server-কে প্রশ্ন করবে।
- 🏷️ Root to TLD Server: রুট সার্ভার আইপি জানে না, কিন্তু সে
.com-এর দায়িত্বে থাকা TLD (Top-Level Domain) Server-এর ঠিকানা বলে দেবে। - 🏢 Resolver to TLD Server: রিসলভার এবার TLD সার্ভারকে প্রশ্ন করবে। TLD সার্ভার
example.com-এর ডোমেইন প্রোপাইডার বা Authoritative Name Server-এর ঠিকানা বলে দেবে। - 🛡️ Resolver to Authoritative Server: রিসলভার এবার অথরিটেটিভ সার্ভারকে প্রশ্ন করবে। এই সার্ভার তার ডেটাবেস থেকে
example.com-এর আইপি অ্যাড্রেসটি রিসলভারকে দেবে। - ✅ Return to User: রিসলভার আইপিটি পেয়ে ব্রাউজারকে রিটার্ন করবে এবং ভবিষ্যতের জন ্য নিজের কাছে ক্যাশ করে রাখবে।
10. What are the types of DNS records (A, CNAME, MX, and more)?
DNS Record হলো DNS ডেটাবেজে সংরক্ষিত নির্দেশিকা, যা বলে দেয় একটি ডোমেইনের সাথে কোন IP বা সার্ভার যুক্ত। প্রতিটি রেকর্ডের আলাদা উদ্দেশ্য আছে।
A Record — Address Record
একটি ডোমেইনকে IPv4 ঠিকানার সাথে যুক্ত করে। সবচেয়ে মৌলিক এবং বহুল ব্যবহৃত রেকর্ড।
example.com → 93.184.216.34
ব্রাউজারে ডোমেইন লিখলে শেষ পর্যন্ত এই রেকর্ডই কাজে আসে।
AAAA Record — IPv6 Address Record
A Record-এর মতোই, তবে IPv6 ঠিকানার জন্য।
example.com → 2606:2800:220:1:248:1893:25c8:1946
CNAME Record — Canonical Name Record
একটি ডোমেইনকে অন্য একটি ডোমেইনের দিকে নির্দেশ করে (IP-র দিকে নয়)।
www.example.com → example.com
blog.example.com → example.com
একটি মূল ডোমেইনের একাধিক Alias তৈরি করতে ব্যবহার হয়। CNAME কখনো সরাসরি IP ধরে না।
MX Record — Mail Exchange Record
ডোমেইনের ইমেইল কোন সার্ভারে যাবে তা নির্ধারণ করে। Priority নম্বর দিয়ে কোন সার্ভার আগে ব্যবহার হবে তা ঠিক করা যায়।
example.com → Priority 10 → mail1.example.com
example.com → Priority 20 → mail2.example.com (backup)
Priority সংখ্যা যত কম, সার্ভার তত বেশি অগ্রাধিকার পায়।
TXT Record — Text Record
ডোমেইন সম্পর্কে যেকোনো টেক্সট তথ্য সংরক্ষণ করে। মূলত যাচাইকরণ ও নিরাপত্তার কাজে ব্যবহৃত হয়।
example.com → "v=spf1 include:_spf.google.com ~all"
সাধারণ ব্যবহার:
| উদ্দেশ্য | উদাহরণ |
|---|---|
| SPF |